Interface

ABSTRACT

An application programmer&#39;s interface provides a facility for accessing metadata describing the content or attributes of information material. The application programmer&#39;s interface comprises a signalling protocol processor operable to receive a metadata string which includes a resource identifier providing an address of a metadata resource, and a file transfer processor operable to provide access to the metadata resource in accordance with a request from the application program. The signalling protocol processor provides an efficient facility for communicating the metadata string. The metadata string may be in the form of a mark-up language such as XML. The metadata resource may be for example a proxy version of the information material, such as a video proxy if the information material is video. Accordingly, the file transfer processor is arranged to provide efficient access to the video proxy using the address provided with metadata string. The address may be a Uniform Resource Identifier address allowing access to the resource from any network linked via the World Wide Web. The application programmer&#39;s interface therefore provides a standard interface format for making metadata and metadata resources available to application programs.

FIELD OF THE INVENTION

The present invention relates to application programmer's interfaces operable to provide an interface for applications programs. More particularly the present invention relates to application programmer's interfaces for providing access to metadata. The metadata may describe the content or attributes relating to material information.

In some embodiments the information material may include audio and/or video material or data material.

BACKGROUND OF THE INVENTION

Co-pending UK patent applications 0008431.9, 0008393.1 and 0008427.7 disclose a system for generating audio and/or video (a/v) productions comprising a camera with a camera adapter box and a personal digital assistant (PDA). The camera is arranged in use to generate a/v material by capturing images and sounds which are recorded on a recording medium such as a cassette tape. The adapter box generates metadata describing the content of the a/v material and/or other attributes of the a/v material such as camera parameter settings used to generate the a/v material. The metadata may be communicated via the wireless communications link to the PDA and stored separately from the a/v material. Accordingly, pre-planned shots or excerpts of an a/v production generated by the camera may be associated with metadata which is related to the a/v material for a particular pre-planned shot or excerpt.

Generally a range of processing devices may use the metadata for storing, navigating or editing the a/v material. Therefore many devices may require access to the metadata.

SUMMARY OF INVENTION

An object of the present invention is to provide a facility for making metadata and metadata resources available to application programs.

According to the present invention there is provided an application programmer's interface for facilitating access to metadata for an application program. The application programmer's interface includes a signalling protocol processor operable to receive a metadata string describing the content or attributes of an item of information material which includes a resource identifier providing a location address of a metadata resource. The application programmer's interface includes a file transfer processor operable to provide access to the metadata resource in accordance with a request from the application program.

The term application programmer's interface is known to those skilled in the art to refer to a processor, typically implemented in software which is arranged to provide a facility for interfacing between applications programs and underlying hardware which is executing the application program. An application programmer's interface may include for example middle-ware, and accordingly the term application programmer's interface should be interpreted broadly to include any form of processor or interface device or facility, which arranges communication of data for another processor (software or hardware).

Embodiments of the present invention can provide an application programmer's interface, which can be used within a network of devices to form metadata nodes. Each node comprises a processing or storage device and the application programmer's interface (API). The API provides a facility for communicating metadata to and from other metadata nodes in a consistent and compatible format. An advantage is thereby provided in that any API can communicate metadata with any other API connected to the network. The network may include the world-wide web.

The API includes a signalling protocol processor operable to receive metadata strings which include an address of a metadata resource, such as a resource identifier, and a file transfer processor operable to provide access to the metadata resource in accordance with a request from the application program. The signalling processor may be for example CORBA, providing an efficient facility for communicating the metadata string. Furthermore the signalling processor in preferred embodiments is arranged to support any query message format providing a facility for querying a data base in order to retrieve information. Accordingly, the signalling protocol processor may communicate a query string identifying the item of information material to another application programmer's interface, and the metadata string may be received from the other application programmer's interface in response to the query string

The metadata string may be in the form of a mark-up language such as XML. The metadata resource may be, for example, a proxy version of the information material, such as a video proxy if the information material is video. Accordingly, the file transfer processor is arranged to provide efficient access to the video proxy using the address provided within the metadata string. Thus, the metadata resource could be any metadata representing a substantial volume of data, which may be less efficiently transferred as part of the metadata string. The address may be a Uniform Resource Identifier address allowing access to the resource from any network linked via the World Wide Web. The application programmer's interface therefore provides a common and consistent interface format for making metadata and metadata resources available to application programs.

In one embodiment the signalling protocol processor may respond to an alert string received from another application programmer's interface identifying the item of information material for which the metadata is available at the other application programmer's interface. The signalling protocol processor may receive the metadata string, following receipt of the alert string. The alert string may include an indication as to whether the metadata resource is persistent or volatile and if volatile may arrange for the file transfer processor to receive the metadata resource identified by the resource identifier.

Various further aspects and features of the present invention are defined in the appended claims.

BRIEF DESCRIPTION OF DRAWINGS

Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings, where like parts are provided with corresponding reference numerals, and in which:

FIG. 1 is a schematic block diagram of a system for generating an a/v production according to an example embodiment of the invention;

FIG. 2 is a schematic block diagram of a camera with a camera adapter box and personal digital assistants shown in FIG. 1 operating remotely;

FIG. 3 is a representation of software processors operating on devices forming metadata nodes connected to the network shown in FIG. 1;

FIG. 4 is a schematic representation illustrating the operation of the software processors shown in FIG. 3, including an application programmer's interface according to an embodiment of the present invention;

FIG. 5 is a schematic block diagram illustrating a sequence of operations which are performed by the camera adapter box and a meta store appearing in FIG. 1, by the applications programmer's interfaces which appear in FIGS. 3 and 4; and

FIGS. 6A and 6B is an illustration of a metadata string in the form of an extended mark-up language, which are communicated by the system shown in FIG. 1 as illustrated in FIG. 5.

DESCRIPTION OF PREFERRED EMBODIMENTS

System Overview

FIG. 1 provides an example configuration illustrating embodiments of the present invention. Embodiments of the present invention provide a facility for generating material in an efficient and cost-effective manner. Advantages of the embodiments will become apparent from the following explanation. However, generally, the workflow in generating material is improved, with an enhanced arrangement for compatibly and consistently communicating metadata.

FIG. 1 provides an example illustration of a system and apparatus embodying the present invention, in which an audio/video (a/v) production is made. Thus, in the following description, the material generated is a/v material. However, it will be appreciated that a/v material is just one example of information material which can be generated. Other examples include financial data, inventory data or indeed any other kind of information, particularly, but not exclusively, where the amount of information generated makes it difficult for users to navigate through this material.

In FIG. 1, a camera 1 includes a camera adapter box 2. The camera 1 is an example of a material generation apparatus. The camera 1 in operation captures images and sounds and represents these images and sounds as a/v material which is recorded on a cassette tape 4. The cassette tape 4 provides a linear storage medium but is one example of a data carrier on which the audio/video material may be stored. Another example of a data carrier could be a non-linear storage medium such as a hard disk. However it will be appreciated that the data carrier could be any medium or signal for representing data.

According to the example embodiment, the camera adapter box 2 is a mountable unit, which can be removed from the camera 1. However, it will be appreciated that the camera adapter box is just one example of a utility unit, which, in alternative embodiments may be integrated within the camera 1. In a general sense the camera adapter box 2 is a utility device, the function of which is explained in the following paragraphs.

The camera adapter box 2 attached to the camera 1 provides a facility for generating metadata. The metadata may comprise different metadata types, some of which may describe the content of the a/v material and others may describe the attributes of the camera which were used when the a/v material was generated. The camera adapter box 2 also includes an antenna 6, which is coupled to a radio communications transmitter/receiver within the camera adapter box 2. The radio communications transmitter/receiver (not shown in FIG. 1) provides a facility for radio communications with a wireless ethernet communicator 10 via an antenna 11 through which ethernet communication is provided with devices connected to a network 12.

As shown in FIG. 1, devices are connected to the network 12. The network 12 provides a facility for communicating data between the devices. Connected to the network 12 is a meta store 20, a metadata extractor 24, an editor assistant 28, which also includes a video tape recorder 30, and an editor 34. The devices may use metadata for difference purposes. Each device is an example of a metadata node or meta node. The PDAs and the camera adapter box may also form meta nodes.

Also connected to the network 12 is a gateway 38 providing a facility for communicating with devices connected to the world-wide-web WWW represented as a cloud 42. Also forming part of the material development system in FIG. 1 are three personal digital assistants (PDAs), PDA_1, PDA_2 and PDA_3. Each of the PDAs includes an antenna AT1, AT2, AT3. As will be explained in the following paragraphs, each of the PDAs PDA_1, PDA_2, PDA_3 is provided with a radio communications transmitter/receiver device. The radio transmitter/receiver is arranged to provide a wireless radio communications link with either the camera adapter box 2 attached to the camera 1 or the wireless ethernet communicator 10. The wireless radio communications link may operate in accordance with a wireless standard such as IEEE 802.11.

The personal digital assistants are one example of assistant devices operable to provide a portable means for data storage and display and may include a user interface.

As will be explained in the following paragraphs, the material development system shown in FIG. 1 provides a facility for generating a/v material which is recorded onto the cassette tape 4. As explained in our co-pending UK patent application numbers 0008431.9 and 0008427.7, the camera adapter box 2 generates metadata as the a/v material is produced and recorded onto the cassette tape 4. However, typically, the camera will be operated away from a studio in which facilities are provided for editing the a/v material into an a/v production. As such, when the camera 1 is operating off-site away from the studio, the camera adapter box 2 is arranged to store metadata on a removable hard disk 50 which is shown to form part of the utility box 2. Furthermore, when the camera is being operated away from the studio, a wireless communications radio link is formed between the camera adapter box 2 and the PDAs which are in radio communications range of the camera adapter box 2. Accordingly, when in range, the camera adapter box 2 can communicate metadata via the radio communications link to the PDAs PDA_1, PDA_2, PDA_3. However, when the camera adapter box is in radio communications range of the ethernet wireless link 10, then metadata can be communicated via the wireless ethernet link to the network 12. Therefore any of the devices connected to the network 12 can have access to the metadata.

The a/v material itself, which is recorded onto the cassette tape 4, is typically transported separately and ingested into a VTR 30 by loading the cassette tape 4 into the VTR 30. As disclosed in our co-pending UK patent application 0008429.3, the VTR may form an ingestion processor, which is arranged to recover the a/v material from the cassette tape 4. However, as explained in our co-pending application 0008429.3, the metadata provides a facility for identifying content items present in the a/v material and for navigating through these content items using the metadata.

As shown in FIG. 2, the cassette tape 4 includes a data store 60 which may be, for example, an electronically readable label such as a TELE-FILE™ label providing a facility for identifying the cassette tape 4. The label is therefore one example of a volume identifier (ID), which is used to identify the a/v material or a collection of a/v material on the cassette tape 4. Typically, but not, exclusively, the volume ID identifies the data carrier (cassette tape) on which the a/v material is stored.

The camera 1 with the camera adapter box 2 is shown in more detail in FIG. 2 with two of the PDAs PDA_1, PDA_2. The configuration shown in FIG. 2 reflects a situation where the camera is used away from the network shown in FIG. 1. Accordingly, as explained above, the PDAs are communicating with the camera adapter box 2 via the wireless communications link formed between the antennae AT_1, AT_2, 6 and the wireless transmitters and receivers 52, 54, 56.

As the camera 1 is generating the a/v material, the camera adapter box 2 is arranged to generate a proxy version of the a/v material. For the example of video material, a video proxy is produced. The video proxy provides a lower quality, lower bandwidth representation of the video material. The a/v proxy is then stored on the data store 50. The proxy may also be communicated on request to any of the PDAs PDA_1, PDA_2 via the wireless communications link. Furthermore, when the camera is within radio communications range of the ethernet wireless link 10, the a/v proxy may be communicated via the network 12 to any of the devices connected to the network 12.

The system presented in FIGS. 1 and 2 provides an improved facility for generating a/v productions. This is provided by arranging for the camera adapter box to communicate metadata generated with the a/v material to either the PDAs or any device connected to the network when in range of the wireless ethernet link. As such the camera adapter box forms a meta node when in radio communications range of the network. Therefore, the generated metadata may by systematically accessed from any device on the network. Furthermore as explained in the following paragraphs the PDAs can be arranged to generate further metadata which can provide a preliminary edit of the a/v material using the metadata.

Personal Digital Assistant

As disclosed in our co-pending UK patent applications 0008431.9, 0008393.1 and 0008427.7, the PDAs PDA_1, PDA_2, provide an improved facility for producing an edited a/v production. To this end, embodiments of the present invention are able to introduce an improved workflow when generating a/v productions. The improved workflow is achieved by arranging for the camera adapter box 2 to communicate metadata to the PDAs PDA_1, PDA_2. Included within this metadata can be a representation of the audio/video proxy generated by the camera adapter box 2.

The personal digital assistants PDA_1, PDA_2 include a graphical user interface for displaying the video proxy and for entering commands and edit decisions with respect to the video proxy material. Part of the metadata communicated to the PDAs is the volume ID, that is the TELE-FILE™ label 60, of the tape 4. A user may enter edit decisions as the a/v material is generated.

A facility provided by the PDAs shown in FIG. 2 is to identify a particular event, which has been captured by the camera. For example, the camera 1 may be one of several cameras which are used to cover a sports event. If a particular event happens during for example a football match, such as a goal, then an editor can identify this event at the time or just after the event has occurred. According to an embodiment of the present invention, the PDAs are provided with a command, which is activated through the user interface to request metadata identifying the a/v material representing the event. The request is communicated via the radio communications link to the camera adapter box 2. In response to the request to mark an event, the camera adapter box 2 recovers the time code data at the time of the request and communicates the time code data to the PDAs. Optionally, the camera adapter box may also communicate the volume ID of the cassette tape 4. The PDAs are therefore provided with a unique identifier of the point in the a/v material where this event has been captured. As such, an advantage is provided in that the a/v material may be more easily edited or navigated through to identify the point in the a/v material where the event is captured.

In an alternative embodiment the camera adapter box is operable to communicate a Unique Material Identifier (UMID) in response to the request to mark an event from the PDA. The UMID can be used to identify a frame of video stored on a data carrier such as a hard-disk.

As mentioned above, the a/v proxy may form part of the metadata communicated on request to the PDAs via the wireless communications link. However, in order to avoid duplication of the a/v proxy version stored in the camera adapter box 2, and the a/v proxy communicated to the PDAs, the PDAs do not store the a/v proxy. Accordingly, an advantage is provided in that a plurality of versions of the a/v proxy are not made thereby avoiding the danger of multiple versions of the same a/v proxy and metadata existing which may later be confused.

Application Programmer's Interface

In addition to the above mentioned aspects providing improvements in generating a/v-productions, embodiments of the present invention provide a facility for efficiently communicating metadata between devices connected to the network 12 or indeed the internet. As will be explained in the following paragraphs, embodiments of the present invention provide a facility for communicating metadata with any device or resource connected to the world-wide web. The communication and manipulation of metadata is achieved by providing a common application programmer's interface which is used by any device to send or receive metadata to or from any other device connected to the network 12 or the world-wide web 42.

The application programmer's interface may include middle-ware processors which allow separate application programs and common resources to communicate and work with one another. FIG. 3 provides an example of a configuration of application programs which may be operating on any one of the devices 20, 24, 28, 34 or indeed the camera 1 or the PDAs PDA_1, PDA_2, PDA_3. The application programs may send and receive metadata to application programs which are operating on other devices, or indeed on the same device. As shown in FIG. 3, three application programs 100, 102, 104 are operating to process metadata as part of one of the devices connected to the network 12. So, for example, the first two application programs 100, 102 may be operating on the metadata extractor 24 whereas the third application program 104 may be operating on the editor 34. As shown in FIG. 3, the metadata extractor 24 and the editor 34 form metadata nodes connected to the network 12.

Embodiments of the present invention provide an application programmer's interface for sending and receiving metadata from other application programmer's interfaces (API) so that the application programs 100, 102, 104 are provided with access to the metadata in a consistent and compatible manner. As such, a metadata trading API 120, 132, embodying the present invention is capable of sending and retrieving metadata from any other metadata trading API connected to the network 12 or indeed the world-wide web 42 via the gateway 38. The metadata API is shown in more detail in FIG. 4.

As shown in FIG. 4, the metadata trading API 120 provides access to metadata which describes the essence or attributes of a/v material to the application program 104 which may perform a particular function, such as editing, post processing or archiving. As shown in FIG. 4, the metadata trading API comprises a signalling protocol processor 124, 122 and a file transfer processor 130, 136. The signalling protocol processor according to the example embodiment shown in FIG. 4 operates in accordance with the Common Object Request Broker Architecture (CORBA) signalling protocol standard. The CORBA signalling protocol provides a protocol for remote invocation and querying of a data store or database. Other examples of signalling protocols are SOAP (Simple Object Access Protocol) or DCOM (Distributed Common Object Model), or indeed any other signalling protocol which is arranged to exchange query and response messages with a corresponding signalling protocol processor for accessing data.

The file transfer processor according to the example embodiment shown in FIG. 4 is operable in accordance with a Hyper-Text Transfer Protocol (HTTP) to access metadata resources. The metadata resources could be, for example, a proxy of the a/v material, a key stamp of the video material, or a compressed representation of the video material. Correspondingly, the metadata resources could include an audio waveform server representative of the audio material, or indeed metadata resources could be any other type of metadata representing the content of information material generally. For the example embodiment, the metadata resource is the video proxy generated by the camera adapter box representing the video material generated by the camera.

According to an example embodiment of the present invention, when the signalling protocol processor 120 requires access to metadata associated with a particular item of a/v material, the signalling protocol processor 124 provides at least two signalling messages which are a query string 128 and an alert string 134.

The query string is communicated to another metadata trading API on another meta node connected to the network as shown in FIG. 3. The query string includes an identifier string identifying the a/v material item for which metadata is requested. For example, the query string may identify a shot present on a particular data carrier. In response to the query string, a metadata trading API generates a metadata string providing the metadata associated with the a/v material item. Accordingly, as shown in FIG. 4, the signalling protocol processor 122 of the other metadata trading API 132 is arranged to respond to the query string by retrieving metadata associated with the a/v material item identified by the query string. The other metadata trading API 132 returns the metadata in the form a metadata string 140 and communicates the metadata string 140 in accordance with the CORBA signalling protocol to the original metadata trading API 120.

According to an embodiment of the present invention, the metadata string 140 is in the form of an extended mark-up language XML. The format of the XML metadata string 140 will be explained in more detail in the following paragraphs. However, typically, the metadata string 140 will include a resource identifier providing a location address of a metadata resource. The metadata resource will typically be a significant amount of data comprising binary information which is too large to be efficiently communicated by the signalling protocol processor. For the present example embodiment this is the video proxy generated by the camera adapter box 24.

The metadata string is delivered to the application program 104 as metadata. However, the metadata resource is not transferred with the metadata string. The metadata resource is accessible to the application program using the file transfer processor 130. The file transfer processor 130 is operable on request from the application program 104 to retrieve the metadata resource at the location address indicated by the resource identifier provided as part of the metadata string. In one embodiment, the resource identifier is a Uniform Resource Identifier (URI) address and the file transfer protocol is operable in accordance with a Hyper Text Transfer Protocol (HTTP) to retrieve the metadata resource. As will be appreciated, an advantage is provided by the metadata trading API in that the metadata resource is accessible via any appropriate web browser using the URI address. Accordingly, as will be appreciated, the metadata resource may exist on any of the metadata nodes on the devices connected to the network 12 or indeed a metadata resource is accessible from any address present on the world-wide web 42.

A further advantageous aspect of the metadata trading API embodying the present invention will now be explained with reference to FIG. 5.

FIG. 5 provides a simplified representation of the camera adapter box 2, which is linked to the data communications network 12 via the wireless ethernet card 10. However, as already explained, the camera adapter box 2 is only capable of communicating data when within a range of the wireless ethernet card 10. As such, the metadata stored in the camera adapter box is an example of a metadata resource which is volatile. Correspondingly, therefore, metadata stored in one of the devices connected to the network 12, such as the metadata store 20, the metadata extractor 24 or the editor 34, are examples of devices providing a persistent resource of metadata. A persistent metadata resource is one which remains permanently or semi-permanently at an address and is constantly accessible from the network.

In order to accommodate metadata resources which are volatile, that is to say resources which may not be available at a later point in time, the signalling protocol processor 122, 124 is arranged to generate an alert string 134 indicating that metadata is available. The alert string includes an identifier for the a/v material item for which the metadata was generated. In addition to the identifier, the alert string also includes an indication as to whether the metadata resource identified with respect to the a/v material is persistent or volatile. Accordingly, an application program may react to a received alert string by arranging for a metadata string to be received from the metadata node which generated the alert string, when the application program has an opportunity or a requirement to receive the metadata string. The application program can use the indication as to whether the metadata resource is volatile or persistent in order to decide whether or not to receive the metadata resource located at the URI address provided with the metadata string. If the alert string indicates that the metadata resource is persistent, then the API may not transfer the metadata resource to its application program until this is required. Not transferring the metadata resource until it is necessary to do so has an advantage of reducing an amount of data communicated on the network 12 thereby reducing a bandwidth requirement or congestion and therefore a time to access other metadata resources. If, on the other hand, the alert string indicates that the metadata resource is volatile, the metadata trading API 120 can be arranged to access the metadata resource by downloading the metadata resource to an application program via the API before the resource is no longer available.

As shown in FIG. 5, therefore, the camera adapter box 2 sends an alert string to the metadata store 20 via the network 12 when the camera adapter box is within range of the wireless ethernet communications link provided by the wireless ethernet card 10. As shown in FIG. 5, the alert string S1 identifies the a/v material item for which metadata has been generated and an indication as to whether the metadata is persistent or volatile. For the present example, the metadata is volatile because the camera adapter box 2 is not permanently connected to the network. At some point later in time when the metadata store 20 is available to receive the metadata, the API operating on the metadata store 20 generates a query string. The query string provides a corresponding identification of the a/v material item for which the metadata is now to be transferred. In response to the query string, the camera adapter box 2 communicates a metadata string which comprises an XML data string to the metadata store 20. However, at step S4 because the alert string indicates that the metadata resource is volatile, the signalling protocol processor of the API of the meta store 20 arranges for the file transfer protocol 130 to transfer the metadata resource to the meta store 20 before the metadata resource is no longer available.

In the above explanation of the operation of the metadata trading API, the query string could be in the form of any query language such as XQL or SQL indicating an item of data entered into a relational database. Alternatively, the query string could be an Xpath query information data string, for accessing a database formed in a related way. Expressing the metadata in the form of an XML language provides an advantage in that metadata may be exchanged in a consistent and compatible way. The XML format of the metadata string will be explained in more detail in the following paragraphs.

Metadata String Structure

An example of a metadata string in XML format is shown in FIG. 6. XML is one example of a mark-up language in which a metadata string can be described, other examples being HTML, WML and SMIL (Synchronised Multi-media Integrated Language).

As shown in FIG. 6, the first line of the XML metadata string provides a reference string for a schema which defines and specifies how the XML metadata string should be interpreted. The first line R.1 in FIG. 6 provides a reference to an HTTP address of www.w3.org\1999\xlink, from which an address of a web-site where a schema defining the structure and rules for interpreting the XML metadata string may be found.

The part of the XML metadata string which provides the location of the web-site for accessing the rules for the schema is called a ‘namespace declaration’. The schema defining the correct structure of the metadata string may be declared within the XML string using the following semantics:

<Material_Description xmlns:xlink=http://www.w3.org/1999/xlink xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=“D:\Temp\metanet_generated.xsd” >

Two attributes which define the schema in a Material_Desription node are i) a namespace declaration specifying that the ‘xsi’ namespace will be used (‘xsi’ stands for XML Schema Instance) and 2) a noNamespaceSchemaLocation attribute. This is a way of defining the location of the schema document which is used to validate the structure of the XML document. The value of this attribute indciates that the schema is located on a local hard drive “D” in a directory “Temp”, and the schema is called “metanet_generated.xsd”. This location could be a URI address that refers to a file on the world-wide web. However, this file could be owned, maintained and hosted by any particular organisation or company.

According to the example embodiment of the present invention represented in FIG. 6, a minimum requirement for identifying a/v material for which metadata has been generated requires a volume identifier (ID) and a shot identifier (ID). The volume ID defines a volume within the metadata XML string and is defined between a start volume node V1 and an end volume node V2. After each volume node, the XML metadata string includes a set of metadata associated with the volume. The metadata associated with the volume MD_V is shown in FIG. 6 to include metadata fields such as “reporter”, “producer”, “country” and “tape number”, etc. Also included in the metadata volume MD_V is a material ID type which could be a Unique Material Identifier (UMID), a TELE-FILE label or a Globally or Universally Unique Identifier (UUID) which is represented at line MD_V1. Also included as part of the volume metadata MD_V is a URI address of a key stamp which identifies the volume associated with a time code of “01:00:00:01” provided in lines MD_V2 and MD_V3.

At a next level in the XML metadata string there is provided a shot node for identifying a shot of a/v material with which metadata is associated. A shot node in the XML metadata string is defined by a shot start node MD_S1 and a shot end node MD_S2. Within the shot node of the XML metadata string there is provided a set of metadata fields and values MD_S. Included within the shot metadata MD_S is a material ID type. The material ID type indicates a UMID or a GUID provided in line MD_S3, a title MD_S4, a description MD_S5, and a URI address of key stamps representing events within the shot MD_S6, MD_S7, MS_S8. Also included within the shot metadata MD_S is a metadata field and value identifying the Uniform Resource Identifier address of an audio waveform server MD_S9.

Thus, as will be appreciated from the representation of the XML metadata string shown in FIG. 6, the string includes a volume ID and a shot ID which are represented at different hierarchical levels, the shot being nested inside the volume node. Following each volume and shot node there is provided metadata associated with the volume and the shot respectively. A plurality of shot nodes may also be nested within a single volume and typically a/v material will be represented in this way for the metadata string. A simplified representation of the XML metadata string structure is shown below in which the metadata string starts with a URI for the schema for interpreting the metadata string at a root node level. A plurality of shots are arranged at a common hierarchical level which is the second hierarchical level shown below:

<Material Description; Schema address> <Metadata> <Volume Material ID = “Vol 1”> <Shot Material ID = “Shot 1”> <UMID> <URI> </ Shot> <Shot Material ID =“Shot 2”> </ Shot> </ Volume> <Volume Material ID = “Vol 2”> . . . . . . . . . </ Volume> </Material Description>

According to the simplified XML metadata string presented above, metadata associated with a particular shot may be accessed with an X-path string using the following query string to access “Volume 012; Shot 023”:

“xpath:\\Material_Description\Volume[Volume[@Material_ID=“Volume 012”]\Shot[@Material_ID=“Shot 023”]”

The term node or tree node is used to reflect a tree-like data structure which provides a hierarchy of data levels.

Further Examples

The structure of the XML metadata string allows shots to be placed within shots (as kind of sub shots). For instance, take a shot of Mike and Barney:

<Shot Material_ID=“bigshot_01”> <Label>Interview with Mike and Barney</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode = “01:10:00:00> </Shot>

A shot may have two logical sections. For example the first part of an interview is with Mike. Then, the camera still rolling turns to Barney and does an interview with him. Even though this is physically one shot, this shot could be segmented into two ‘sub-shots’ by either a manual or automatic process. This can be represented in the XML in the following way:

<Shot Material_ID=“bigshot_01”> <Label>Interview with Mike and Barney</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode = “01:10:00:00> <Shot Material_ID=“subshotofbigshot_01_01”> <Label>Interview with Mike</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode = “01:05:00:00> </Shot> <Shot Material_ID=“subshotofbigshot_01_02”> <Label>Interview with Barney</Label> <InPoint Timecode=“01:05:00:01”> <OutPoint Timecode = “01:10:00:00> </Shot> </Shot>

Furthermore, Mike's interview could be broken down again into two further sub-shots. For instance if Mike starts talking about his acting career, and then moves on to talk about his film directing, the metadata string could be represented as follows:

<Shot Material_ID=“bigshot_01”> <Label>Interview with Mike and Barney</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode = “01:10:00:00> <Shot Material_ID=“subshotofbigshot_01_01”> <Label>Interview with Mike</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode = “01:05:00:00> <Shot Material_ID=“subshotofsubshotofbigshot_01_01”> <Label>Mike the actor</Label> <InPoint Timecode=“01:00:00:00”> <OutPoint Timecode =“01:02:30:00> </Shot> <Shot Material_ID=“subshotofsubshotofbigshot_01_02”> <Label>Mike the director</Label> <InPoint Timecode=“01:02:30:01”> <OutPoint Timecode = “01:05:00:00> </Shot> </Shot> <Shot Material_ID=“subshotofbigshot_01_02”> <Label>Interview with Barney</Label> <InPoint Timecode=“01:05:00:01”> <OutPoint Timecode =“01:10:00:00> </Shot> </Shot>

Therefore any of the shots or sub-shots could be broken down into further sub-shots. The only limit would be that no sub-shot can be shorter than one frame, so this is the physical and logical limit of the nesting of shots within shots.

As will be appreciated from the foregoing description, the XML metadata string provides an encapsulated wrapper for metadata, which may be accessed using a query string. As will be appreciated by those skilled in the art, the query string defines the volume at the first hierarchy and the shot or sub-shot at the second hierarchy and possibly a particular item of, or field of, metadata which is being accessed by an API at a third hierarchy. The metadata string, alert string and query string are formed from ascii characters or Unicode.

Various modifications may be made to the embodiments hereinbefore described without departing from the scope of the present invention. In particular, it will be appreciated that any form of mark-up language could be used to describe the metadata string, XML being just one example. Furthermore, various modifications may be made to the XML metadata string without departing from the scope of the present invention. For example, other metadata examples may be introduced and the relative level of each of the volume and shot metadata types may be varied with the relative logical association of shots within volumes being maintained.

As explained above a/v material is just one example of information material, other examples being financial data, inventory data or any other kind of information data. As such in this context it will be appreciated that the term “shot” refers to a unit, portion or segment of the information material, which may have been generated over a particular period. For such an example, the shot would represent a snap-shot of the information material. 

1. An application programmer's interface for facilitating access to metadata for an application program, said application programmer's interface comprising: a signalling protocol processor operable to receive a metadata string describing the content or attributes of an item of information material wherein the metadata string includes a resource identifier providing a location address of a metadata resource, and a file transfer processor operable to provide access to said metadata resource in accordance with a request from the application program, wherein said signaling protocol processor is operable to respond to an alert string received from another application programmer's interface identifying said item of information material for which said metadata is available at the other application programmer's interface, and said signalling protocol processor is operable, following receipt of said alert string to receive said metadata string in response to said alert signal.
 2. An application programmer's interface as claimed in claim 1, wherein said signaling protocol processor is operable to communicate a query string identifying said item of information material to another application programmer's interface, and said metadata string is received from the other application programmer's interface in response to said query string.
 3. An application programmer's interface as claimed in claim 2, wherein said query string and said metadata string provide data in ascii or Unicode form.
 4. An application programmer's interface as claimed in claim 1, wherein said alert string includes an indication as to whether said metadata resource is persistent or volatile and consequent upon determining that said metadata is volatile arranging for said file transfer processor to receive the metadata resource identified by said location address.
 5. An application programmer's interface as claimed in claim 1, wherein said metadata string is represented in the form of a mark-up language.
 6. An application programmer's interface as claimed in claim 1, wherein said metadata resource includes a proxy version of the material, and said file transfer processor is operable to transmit or receive said proxy version of said material to or from another application programmer's interface.
 7. An application programmer's interface as claimed in claim 1, wherein said resource identifier of said metadata resource is a Uniform Resource Identifier.
 8. An application programmer's interface as claimed in claim 1, wherein said resource identifier of said metadata resource provides an indication to said file transfer processor of a transfer protocol to use when accessing the metadata resource.
 9. An application programmer's interface as claimed in claim 1, wherein said information material is at least one of audio material, video material and data material.
 10. An application programmer's interface as claimed in claim 9, wherein said material is video material and said metadata resource includes one of a key stamp, proxy video or a compressed representation of said video material.
 11. An application programmer's interface as claimed in claim 10, wherein said query string includes a volume identifier identifying a data carrier containing said information material and a shot identifier identifying a unit of the information material described by said metadata string.
 12. An application programmer's interface as claimed in claim 9, wherein said material is audio material and said metadata resource includes an audio waveform server.
 13. A computer program providing computer executable instructions, which when loaded onto a data processor configures the data processor to operate as the application programmer's interface as claimed in claim
 1. 14. A computer program product having a computer readable medium having recorded thereon information signals representative of the computer program claimed in claim
 13. 15. A method of interfacing with an application program for facilitating access to metadata for an application program, said method comprising the steps of: responding to an alert string received from another application programmer's interface indicating that metadata is available; receiving a metadata string in response to said alert string, the metadata string describing the content or attributes of an item of information material, which includes a resource identifier providing a location address of a metadata resource, and providing access to said metadata resource by the application program.
 16. A method as claimed in claim 15, comprising communicating a query string identifying said item of information material to another application programmer's interface, and receiving said metadata string from the other application programmer's interface in response to said query string.
 17. A computer program providing computer executable instructions, which when loaded on to a data processor causes the data processor to perform the method according to claim
 15. 18. A computer program product having a computer readable medium having recorded thereon information signals representative of the computer program claimed in claim
 17. 19. An apparatus for interfacing with an application program to facilitate access to metadata for an application program, said apparatus comprising means for responding to an alert string from another application programmer's interface indicating that metadata is available, means for receiving a metadata string in response to said alert string, the metadata string describing the content or attributes of an item of information material, which includes a resource identifier providing a location address of a metadata resource, and means for providing access to said metadata resource by the application program.
 20. An apparatus as claimed in claim 19, comprising means for communicating a query string identifying said item of information material to another application programmer's interface, and means for receiving said metadata string from the other application programmer's interface in response to said query string.
 21. An application programmer's interface for facilitating access to metadata for an application program, said application programmer's interface comprising a signaling protocol processor operable to receive a metadata string describing the content or attributes of an item of information material wherein the metadata string includes a resource identifier providing a location address of a metadata resource, and a file transfer processor operable to provide access to said metadata resource in accordance with a request from the application program, wherein said metadata resource includes a proxy version of the material, and said file transfer processor is operable to transmit or receive said proxy version of said material to or from another application programmer's interface.
 22. An application programmer's interface as claimed in claim 21, wherein said signaling protocol processor is operable to communicate a query string identifying said item of information material to another application programmer's interface, and said metadata string is received from the other application programmer's interface in response to said query string.
 23. An application programmer's interface as claimed in claim 22, wherein said query string and said metadata string provide data in ascii or Unicode form.
 24. An application programmer's interface as claimed in claim 21, wherein said metadata string is represented in the form of a mark-up language.
 25. An application programmer's interface as claimed in claim 21, wherein said resource identifier of said metadata resource is a Uniform Resource Identifier.
 26. An application programmer's interface as claimed in claim 21, wherein said resource identifier of said metadata resource provides an indication to said file transfer processor of a transfer protocol to use when accessing the metadata resource.
 27. An application programmer's interface as claimed in claim 21, wherein said information material is at least one of audio material, video material and data material.
 28. An application programmer's interface as claimed in claim 27, wherein said material is audio material and said metadata resource includes an audio waveform server.
 29. An application programmer's interface as claimed in claim 21, wherein said material is video material and said metadata resource includes one of a key stamp, proxy video or a compressed representation of said video material.
 30. An application programmer's interface as claimed in claim 29, wherein said query string includes a volume identifier identifying a data carrier containing said information material and a shot identifier identifying a unit of the information material described by said metadata string.
 31. A method of interfacing with an application program for facilitating access to metadata for an application program, said method comprising the steps of receiving a metadata string describing the content or attributes of an item of information material, which includes a resource identifier providing a location address of a metadata resource, wherein said metadata resource includes a proxy version of the material, and providing access to said metadata resource by the application program, including transmitting or receiving said proxy version of said material to or from another application programmer's interface.
 32. An apparatus for interfacing with an application program to facilitate access to metadata for an application program, said apparatus comprising means for receiving a metadata string describing the content or attributes of an item of information material, which includes a resource identifier providing a location address of a metadata resource, wherein said metadata resource includes a proxy version of the material, and means for providing access to said metadata resource by the application program, including means for transmitting or means for receiving said proxy version of said material to or from another application programmer's interface.
 33. A computer program product having computer executable code embedded therein, that when executed by a processor performs a process with steps comprising: receiving a metadata string describing the content or attributes of an item of information material, which includes a resource identifier providing a location address of a metadata resource, wherein said metadata resource includes a proxy version of material, and providing access to said metadata resource by the application program, including transmitting or receiving said proxy version of said material to or from another application programmer's interface. 